/// <reference path="../typings/index.d.ts" />
/// <reference path="../src/projectService.ts" />
/// <reference path="../src/tms.ts" />

describe('getProjectList',() => {
    var injector:ng.auto.IInjectorService;
    var service:IProjectService;

    beforeEach(() => {
        injector = angular.injector(['ng','tms']);
        service = injector.get<IProjectService>('projectService');
    });

    //常规无条件获取
    it('get project list normal',(done) => {
        service.getList(null, null, null, 0, 10).then((res) => {
            expect(res.data.total).toBeGreaterThan(0);
            expect(res.data.list.length).toBe(10);
            expect(res.data.extData).toBe('|||0|10');
            done();
        },(err) => {
            done.fail(err);
        });
    });

    //获取企业公司编号包含1的工程列表
    it('get project list by enterpriseid \'1\'',(done) => {
        service.getList('1',null,null,0,10).then((res) => {
            expect(res.data.total).toBeGreaterThan(0);
            expect(res.data.list.length).toBe(10);
            expect(res.data.extData).toBe('1|||0|10');
            done();
        },(err) => {
            done.fail(err);
        });
    });

    //获取工程编号包含001的工程列表
    it('get project list by projectcode \'001\'',(done) => {
        service.getList(null,'001',null,0,10).then((res) => {
            expect(res.data.total).toBeGreaterThan(0);
            expect(res.data.list.length).toBe(10);
            expect(res.data.extData).toBe('|001||0|10');
            done();
        },(err) => {
            done.fail(err);
        });
    });

    //获取工程名称包含测试工程 的工程列表
    it('get project list by projectname \'测试工程\' ',(done) => {
        service.getList(null,null,'测试工程',0,10).then((res) => {
            expect(res.data.total).toBeGreaterThan(0);
            expect(res.data.list.length).toBe(10);
            expect(res.data.extData).toBe('||测试工程|0|10');
            done();
        },(err) => {
            done.fail(err);
        });
    });

     //获取企业公司编号包含1 , 工程编号包含001, 工程名称包含测试工程 的工程列表
    it('get project list by enterpriseid \'1\' and projectcode \'001\' and projectname \'测试工程\' ',(done) => {
        service.getList('1','001','测试工程',0,10).then((res) => {
            expect(res.data.total).toBe(10);
            expect(res.data.list.length).toBe(10);
            expect(res.data.extData).toBe('1|001|测试工程|0|10');
            done();
        },(err) => {
            done.fail(err);
        });
    });

    //获取工程详情
    it("get detail",(done) => {
        service.getDetail("1").then((res) => {
            expect(res.data.enterpriseCompanyId).toBe("1");
            expect(res.data.projectName).toBe("测试工程");
            expect(res.data.projectCode).toBe("2");
            expect(res.data.maxValue).toBe(2);
            expect(res.data.maxUnit).toBe("吨");
            expect(res.data.settleName).toBe("物流公司");
            expect(res.data.settlePhone).toBe("135");
            expect(res.data.settleContact).toBe("杨杨");
            expect(res.data.remarks).toBe("工程说明");
            expect(res.data.extData).toBe("1");
            done();
        },(err) => {
            done.fail(err);
        });
    });


    //添加工程
    it('add project ',(done)=>{
        service.add('1','测试工程','1',1,'件','收货单位','收货人','18352868111','添加工程测试').then((res)=>{
            expect(res.data.extData).toBe("1|测试工程|1|1|件|收货单位|收货人|18352868111|添加工程测试");
            done();
        },(err)=>{
            done.fail(err);
        });
    });


    //编辑工程
    it('edit project ',(done)=>{
        service.edit('2','8','M.P配送','00126', 1 ,'吨','收货单位2','收货人2','18352868222','编辑工程测试').then((res)=>{
            expect(res.data.extData).toBe("2|8|M.P配送|00126|1|吨|收货单位2|收货人2|18352868222|编辑工程测试");
            done();
        },(err)=>{
            done.fail(err);
        });
    });

    //删除工程
    it('delete project',(done)=>{
        service.delete('1').then((res)=>{
            expect(res.data.extData).toBe("1");
            done();
        },(err)=>{
            done.fail(err);
        });
    });

});